#include <stdio.h>
#include <string.h>
#include <windows.h>

static BOOL  CALLBACK  EnumWndProc( HWND hWnd, LPARAM lParam )
{
    wchar_t buff[ 1024 ];
    wchar_t* dmy = L"";
    wchar_t name[ 1024 ];
    char name1[ 1024 ];
    char name2[ 1024 ];
    wchar_t name3[ 1024 ];
    long n = 1;

    wcscpy( buff, dmy );
    wchar_t* dmy1 = chartowchar( ( ( cell* )lParam )->WindowName, strlen( ( ( cell* )lParam )->WindowName ) );
    wcscpy( name, dmy1 );
    strcpy( name1, ( ( cell* )lParam )->WindowName );
    char* dmy2 = folderfromdir( name1 );
    strcpy( name2, dmy2 );
    char* dmy4 = strstr( name2, "." );
    if ( dmy4 != NULL ) {
        if ( ( strcmp( dmy4, ".wma" ) == 0 ) || ( strcmp( dmy4, ".WMA" ) == 0 ) ) strcpy( name2, "Windows Media Player.lnk" );
        else if ( ( strcmp( dmy4, ".wmv" ) == 0 ) || ( strcmp( dmy4, ".WMV" ) == 0 ) ) strcpy( name2, "Windows Media Player.lnk" );
        else if ( ( strcmp( dmy4, ".w4a" ) == 0 ) || ( strcmp( dmy4, ".W4A" ) == 0 ) ) strcpy( name2, "iTunes.lnk" );
        else if ( ( strcmp( dmy4, ".w4v" ) == 0 ) || ( strcmp( dmy4, ".W4V" ) == 0 ) ) strcpy( name2, "iTunes.lnk" );
        else *( dmy4 ) = 0x00;
    }
    wchar_t* dmy3 = chartowchar( name2, strlen( name2 ) );
    wcscpy( name3, dmy3 );

    GetWindowText( hWnd, buff, sizeof( buff ) ); // ウインドウの文字を取得して、

    if ( wcslen( buff ) > 0 ) {
        if ( dbgflg ) printf( "GetWindowText nos [ %d ]\n", n );
        if ( dbgflg ) printf( "PickUp Window name [ %ls ]\n", name3 );
        if ( dbgflg ) printf( "GetWindowText buf [ %ls ]\n", buff );
        n++;
    }

    if ( wcslen( buff ) > 0 ) {
        if ( ( wcsstr( name3, buff ) != NULL ) || ( wcsstr( buff, name3 ) != NULL ) ) { // 名前が一致したら、

            if ( dbgflg ) printf( "GetWindowText buff [ %ls ]\n", buff );
            ( ( cell* )lParam )->hWnd = hWnd; // ウィンドウハンドルを渡す
            return false;

        }
    }

    return true;

}